Java的型別,指的是讓程式知道所指的資料其身分為何,針對這些型別進一步了解如何操作。
有些程式語言不會硬性規定要定義其資料身分,但Java對身分的認定可是非常嚴格的,一定要定義資料身分,因此又稱為強型別。
※型別亦稱為類型、型態,也是type資料的種類。
項次 | 型態 | 名稱 | 記憶體空間 | 取值範圍 | 初始
------------ | ------------ | ------------- | ------------- | -------------
1.| byte | 位元組整數 | 8bits |2^7至2^7-1(-128至127) | 0
2.| short | 短整數 | 16bits |2^15至2^15-1(-32768至32767) | 0
3.| int | 整數 | 32bits | 2^31至2^31-1(-2147483648至2147483647) | 0
4.| long | 長整數 | 64bits | 2^63至2^63-1(-2147483648至2147483647) | 0L
5.| float | 單精度浮點數 | 32bits |2^31至2^31-1(最多7位小數) | 0.0f
6.| doule | 雙精度浮點數 | 64bits |2^63至2^63-1最多15位小數) | 0.0d
7.| boolean | 布林 | 1bit |true or false | false
8.| char | 字元 | 16bits Unicode |0至2^16-1(\u0000到\uffff) | \u0000為空字符
多種型別混和運算時,Java自有一套規則自動轉型,避免不同型別進行操作時,會錯誤失敗。通常會是把所有數據轉換成容量最大再進行運算,位階如下(無關記憶體):
double>float>long>int>short>byte
double>float>long>int>char
意思是,假設有int與double進行運算,會自動將int提升成double型別再進行運算。
以下三種有特殊狀況:
byte,short跟char之間不會自動轉換,但是三者計算時會先轉為int再進行計算。